home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / FORTH / FORTHMAC / OLD / TOOLS1 / !Forthmacs.extend.arm.sqroot < prev    next >
Text File  |  1995-05-28  |  526b  |  27 lines

  1. \ Contents: Square-root for ARM processors
  2. \    u1 -- 32-bit unsigned
  3. \    n  -- significant digits
  4. \          16 -> sqrt-integer
  5. \          32 -> fractional integer 16/16bits
  6.  
  7. code (sqrt    \ ( u1 n -- u2 )
  8.     r0    sp    pop
  9.     r1    0 #    mov
  10.     r2    0 #    mov
  11.     begin    r3    r1    mov
  12.         r0    r0    1 #lsl s mov
  13.         r2    r2    r2 adc
  14.         r0    r0    1 #lsl s mov
  15.         r2    r2    r2 adc
  16.         r1    r1    2 #lsl mov
  17.         r1    1    incr
  18.         r2    r2    r1 s sub    \ get C-flag
  19.         r2    r2    r1 lt add
  20.         r1    r3    1 #lsl mov
  21.         r1    r1    1 # ge orr    \ bit0 = not-C
  22.         top    1    s decr
  23.     eq until
  24.         top    r1    mov c;
  25.  
  26. : sqrt        ( u1 -- u2 )    d# 16 (sqrt ;
  27.